package com.sky.common.docker.container;

import com.github.dockerjava.api.model.Container;
import com.sky.common.enums.ContainerStatus;
import lombok.Data;

import java.util.Date;

/**
 * 容器基础信息
 */
@Data
public class ContainerInfo {

    /**
     * 名称
     */
    private String name = "";

    /**
     * 容器id
     */
    private String  dockerId;
    /**
     * 容器状态
     */
    private ContainerStatus status;

    /**
     * 开始日期
     */
    private Date  startedAt;

    /**
     * 容器基础信息
     * @param container 容器
     * @return 获取容器基础信息
     */
    public static ContainerInfo  valueOf(Container container){
        ContainerInfo containerInfo = new ContainerInfo();
        if(container.getNames()!=null && container.getNames().length>0){
            String containerName = container.getNames()[0];
            if(containerName.startsWith("/")){
                containerName = containerName.substring(1);
            }
            containerInfo.setName(containerName);
        }
        containerInfo.setDockerId(container.getId());
        String state = container.getState();
        ContainerStatus status = ContainerStatus.valueOf(state);
        containerInfo.setStatus(status);
        containerInfo.setStartedAt(new Date(container.getCreated()*1000));
        return containerInfo;
    }

}
